package me.firstapp.service.weixin.product;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import me.firstapp.common.utils.Page;
import me.firstapp.module.weixin.product.Product;

public interface ProductService {

	Page<Product> findProductPage(Integer pageNo, Integer pageSize, Map<String, Object> searchParams, String sortParam,
			String sortType);

	List<Product> findByCategoryId(Integer pageNo, Integer pageSize, Long productCategoryId);

	List<Product> findByKeyword(Integer pageNo, Integer pageSize, String keyword);

	Product findById(Long id);

	Product executeAdd(Long productCategoryId, Long supplierId, String name, String imgUrl, String detailUrl,
			String outUrl, String unit, BigDecimal cost, BigDecimal startFreight, BigDecimal unitFreight,
			Integer limitUnit, BigDecimal fansPrice, BigDecimal baseVipPrice, BigDecimal highVipPrice,
			BigDecimal chiefBaseVipJinBi, BigDecimal chiefHighVipJinBi, BigDecimal chiefBaseVipPoint,
			BigDecimal chiefHighVipPoint, String description, String remark, Integer tuiJian,
			BigDecimal fansBuyGiveOtherJb, BigDecimal baseVipBuyGiveOtherJb, BigDecimal highVipBuyGiveOtherJb,
			Integer sort);

	Product executeUpdate(Long id, Long productCategoryId, Long supplierId, String name, String imgUrl,
			String detailUrl, String outUrl, String unit, BigDecimal cost, BigDecimal startFreight,
			BigDecimal unitFreight, Integer limitUnit, BigDecimal fansPrice, BigDecimal baseVipPrice,
			BigDecimal highVipPrice, BigDecimal chiefBaseVipJinBi, BigDecimal chiefHighVipJinBi,
			BigDecimal chiefBaseVipPoint, BigDecimal chiefHighVipPoint, String description, String remark,
			Integer status, Integer tuiJian, BigDecimal fansBuyGiveOtherJb, BigDecimal baseVipBuyGiveOtherJb,
			BigDecimal highVipBuyGiveOtherJb, Integer sort);

	List<Product> findByTuiJian();
}
